perm filename GRAPH.NEW[PNT,HE] blob
sn#492457 filedate 1980-01-23 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 PROCEDURE TO GRAPH ARRAYS OF FORCE DATA
C00004 00003 ⊃ PROCEDURE TO GRAPH ARRAYS OF FORCE SENSOR DATA
C00008 ENDMK
C⊗;
COMMENT PROCEDURE TO GRAPH ARRAYS OF FORCE DATA;
ENTRY;
BEGIN "GRAPH"
DEFINE ⊃="COMMENT ",CRLF="('15&'12)";
PRELOAD_WITH "FX","FY","FZ","MX","MY","MZ","T1","T2","T3","T4","T5","T6";
STRING ARRAY CTLCHR[1:12];
PRELOAD_WITH 1,2,4,8,16,32,64,128,256,512,1024,2048;
INTEGER ARRAY CTLMASK[1:12];
PRELOAD_WITH "OZ","OZ","OZ","OZ-IN","OZ-IN","OZ-IN",
"OZ-IN","OZ-IN","OZ","OZ-IN","OZ-IN","OZ-IN";
STRING ARRAY YLAB[1:12];
INTEGER HEAD,FUNCT;
PROCEDURE INITG;
BEGIN
SETBREAK(HEAD←GETBREAK,"ABCDEFGHIJKLMNOPQRSTUVWXYZ?"&'12&'15,NULL,"IRN");
SETBREAK(FUNCT←GETBREAK,"ABCDEFGHIJKLMNOPQRSTUVWXYZ?0123456789",NULL,"XNR");
END;
REQUIRE INITG INITIALIZATION;
REQUIRE "DPYSUB.HDR[SUB,SYS]" SOURCE_FILE;
⊃ PROCEDURE TO GRAPH ARRAYS OF FORCE SENSOR DATA;
INTERNAL PROCEDURE GRAPH(REAL ARRAY RDATA; INTEGER CTL,NPTS,SIZE);
BEGIN "GPROC"
INTEGER I,J,K,NCPN,OFFSET,LASTRDAT,POG,DD,III,DUM;
BOOLEAN FIRSTTIME;
BOOLEAN ARRAY GOT[1:12];
INTEGER ARRAY DATA[1:12,1:SIZE];
INTEGER ARRAY DARRAY[1:SIZE];
INTEGER ARRAY DISPLY[1:'3000];
STRING ANS,COM2;
STRING DISCM,DANS;
LABEL DEND;
INTEGER WID,DIG; ⊃ save format parameters ;
GETFORMAT(WID,DIG);
SETFORMAT(0,0);
⊃ DETERMINE WHICH DATA WAS COLLECTED;
NCPN←0;
FOR I← 1 STEP 1 UNTIL 12 DO
IF CTL LAND CTLMASK[I] THEN
BEGIN
NCPN←NCPN+1;
GOT[I]←TRUE;
OUTSTR(CTLCHR[I]&" COLLECTED"&CRLF);
END
ELSE GOT[I]←FALSE;
LASTRDAT←NCPN+NPTS;
⊃ STORE RAW DATA INTO SEPARATE ARRAYS;
OFFSET←1;
FOR I←1 STEP 1 UNTIL 12 DO
IF GOT[I] THEN
BEGIN
K←OFFSET;
FOR J←1 STEP 1 UNTIL NPTS DO BEGIN
DATA[I,J]←RDATA[K];
K←K+NCPN;END;
OFFSET←OFFSET+1;
END;
FIRSTTIME←TRUE;
OUTSTR("COMPONENT TO GRAPH? (E TO EXIT, P TO PLOT) ");
⊃ DISPLAY LOOP;
WHILE TRUE DO BEGIN "DLOOP"
I←0;
WHILE I=0 DO BEGIN
LODED(DISCM);
ANS←INCHWL;
SCAN(ANS,HEAD,DUM);
DISCM←SCAN(ANS,FUNCT,DUM);
IF EQU(DISCM,"E") THEN GOTO DEND;
IF FIRSTTIME THEN IF DISCM="P" THEN OUTSTR("DISPLAY FIRST")
ELSE BEGIN
FOR J←1 STEP 1 UNTIL 12 DO
IF EQU(DISCM,CTLCHR[J]) THEN
BEGIN
IF GOT[J] THEN I←J;
DONE;
END;
IF I=0 THEN OUTSTR("DATA NOT COLLECTED FOR THAT COMPONENT"&CRLF)
ELSE FIRSTTIME←FALSE;
END;
END;
IF DISCM≠"P" THEN
BEGIN
FOR J←1 STEP 1 UNTIL NPTS DO
DARRAY[J]←DATA[I,J];
DPYCLR;
TYPLOC(-400,-450);
POG←GETPOG;
DPYSET(DISPLY);
COM2←" DURATION = "&CVS(NPTS/60)&" SECONDS";
ARRGRAF(DARRAY,1,NPTS,-400,-300,800,700," SAMPLES"
," "&CTLCHR[I]&" "&YLAB[I],0,0);
DPYBIG(2);
AIVECT(-400,430);
DPYSST(COM2);
DPYOUT(POG);
define ttyset = "'047000400121";
quick_code
hrroi 1,['004000000120]; comment [004000,,"P"];
ttyset 1, ; ⊃ this last stuff does an esc-P;
end;
END
ELSE
BEGIN
⊃ SAVE PLT FILE ;
STRING FILNAM;
INTEGER FLG,CHN;
CHN←GETCHAN;
OPEN(CHN,"DSK",8,0,3,0,0,0);
DO BEGIN
OUTSTR("PLOT FILE = ");
FILNAM←INCHWL;
ENTER(CHN,FILNAM&".PLT",FLG);
END UNTIL ¬FLG;
ARRYOUT(CHN,DISPLY[1],DISPLY[2]);
CLOSE(CHN);
RELEASE(CHN);
END;
END "DLOOP";
DPYCLR;
DEND: SETFORMAT(WID,DIG);
END "GPROC";
END "GRAPH";